home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-10-13 | 2.3 KB | 114 lines | [TEXT/KAHL] |
- * ****
- * Little Smalltalk, version 3
- * Written by Tim Budd, Oregon State University, January 1989
- *
- * This file: (c) October 1994, Julian Barkway. All rights reserved.
- *
- * Overridden methods from 'file.st'. Most just slightly modified to deal
- * with file types.
- *
- * In order to allow the use of hierarchical directories, the file name has
- * been expanded to allow a full pathname to be specified. For now, though,
- * only access to the default volume is supported.
- *
- * I have also added the notion of Mac file types. Two types are currently
- * supported:
- *
- * 1: Text (including saved workspaces)
- * 2: System Image
- *
- * On other systems, these could be implemented by means of standardised file
- * name extensions.
- *
- * JRB, 5/94.
- *
- * v3.1.0 -
- * v3.1.1 -
- * v3.1.2 Changed methods removed from file.st for greater compatibility.
- *
- * ****
- Methods File 'all'
- number
- "Return number allocated to this file"
- ^ number
- |
- open: m
- self mode: m.
- self open
- |
- open: m withType: t
- self mode: m.
- self fType: t.
- self open
- |
- mode: m
- mode <- m
- |
- fType: t
- fType <- t
- |
- open
- (name isNil) ifFalse: [
- number notNil ifTrue: [ self close ].
- self getNumber.
- (<120 number name mode fType> isNil)
- ifTrue: [ smalltalk error:
- 'open failed: ', name. ^ false].
- ^ true
- ]
- |
- close
- " close file, take entry out of global variable "
- number isNil ifTrue: [ ^ nil ].
- files at: number put: nil.
- <121 number name>.
- number <- nil.
- |
- saveImage
- " subtle problem - when we read in image don't want
- image file to be open for writing, so we remove it's
- number from files array temporarily "
- (name isNil) "2 lines added JRB, 5/94"
- ifFalse: [
- (number notNil)
- ifTrue: [ files at: number put: nil.
- <127 number>.
- files at: number put: self]
- ifFalse: [smalltalk error: 'saveImage: file not open'
- ]
- ]
- ]
- Methods File 'all'
- delete
- ^ <124 number name>
- ]
-
- Methods Smalltalk 'image'
- saveImage: name
- (name isNil)
- ifFalse: [
- scheduler critical: [
- " first get rid of our own process "
- scheduler removeProcess: scheduler currentProcess.
- File new;
- name: name;
- open: 'wb' withType: 2;
- saveImage;
- close
- ]
- ]
- ]
-
- Methods Class 'all'
- fileOut | f |
- " file out whole class on class.st "
- f <- File new;
- name: (name asString,'.st');
- mode: 'w';
- fType: 1;
- open.
- self fileOutOn: f.
- f close.
- ]
-
-